package br.usp.pcs.larc.sipspace.jainsip.javax.sip;

import java.util.Iterator;
import java.util.Properties;

import javax.sip.InvalidArgumentException;
import javax.sip.ListeningPoint;
import javax.sip.ObjectInUseException;
import javax.sip.SipException;
import javax.sip.SipProvider;
import javax.sip.SipStack;
import javax.sip.TransportNotSupportedException;
import javax.sip.address.Router;

public class SipStackImpl implements SipStack{

	private Properties stackConfig = null;
	
	public SipStackImpl(Properties p) {
		this.stackConfig = p;
	}
	@Override
	public ListeningPoint createListeningPoint(int arg0, String arg1)
			throws TransportNotSupportedException, InvalidArgumentException {
		return null;
	}

	@Override
	public ListeningPoint createListeningPoint(String arg0, int arg1,
			String arg2) throws TransportNotSupportedException,
			InvalidArgumentException {
		
		//TODO Criar a implementação comptaível com o TS
		return null;
	}

	@Override
	public SipProvider createSipProvider(ListeningPoint lp)
			throws ObjectInUseException {
		return new SipProviderImpl();
	}

	@Override
	public void deleteListeningPoint(ListeningPoint arg0)
			throws ObjectInUseException {
		
	}

	@Override
	public void deleteSipProvider(SipProvider arg0) throws ObjectInUseException {
		
	}

	@Override
	public String getIPAddress() {
		return null;
	}

	@Override
	public Iterator getListeningPoints() {
		return null;
	}

	@Override
	public Router getRouter() {
		return null;
	}

	@Override
	public Iterator getSipProviders() {
		return null;
	}

	@Override
	public String getStackName() {
		return null;
	}

	@Override
	public boolean isRetransmissionFilterActive() {
		return false;
	}

	@Override
	public void start() throws SipException {
		System.out.println("START");
	}

	@Override
	public void stop() {
		System.out.println("STOP");
	}

}
